home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / dev / lang / perl4_bin_035_v010.lzh / perl4.035 / README.amiga < prev    next >
Text File  |  1992-09-24  |  8KB  |  206 lines

  1.  
  2.  
  3.                         Amiga  PERL  Port:
  4.                   Installation  and  User  Guide
  5.  
  6.  
  7.              Perl  Version  -  4.0.1.7  PatchLevel  35
  8.                Amiga  Perl  Port  Version  -  0.1.0
  9.  
  10.    Maintainer:  Kent Dalton - Kent.Dalton@FtCollinsCO.NCR.com
  11.  
  12.  
  13. 1. Introduction
  14.  
  15. Welcome to the Amiga port of Perl 4.035.  For those of you who may
  16. not be familiar with perl, it is a programming language that has
  17. become very popular among user of the Unix operating system.  The
  18. language is very useful for the manipulation of text, files, and
  19. processes and the syntax is very C-like.  Perl isinterpreted,
  20. which can be very convenient when developing small utilities and
  21. one-shot scripts.
  22.  
  23. I'm calling the current version of Amiga Perl 'Beta' since it
  24. still has a couple of known, minor, bugs and fails a few of the
  25. regression tests.  It is very usable, however, and I have not had
  26. any major problems (i.e.  no gurus!)  with it now that
  27.  
  28. I have gotten it stabilized.  Obviously, the program has no
  29. warranty, since it is free software.  For more warranty and
  30. redistribution information, see the 'README', 'Copying', and
  31. 'Artistic' files that should have been included with the program.
  32.  
  33. In the spirit of perl, I freely encourage users to modify the
  34. source code and fix bugs to their heart's content.  I would like
  35. to remain the maintainer of Amiga perl, so if you have any
  36. bug-fixes or useful patches, let me know!  (See the section on
  37. 'Reporting Bugs' below for more information.)
  38.  
  39. 1.1.    System  Requirements
  40.  
  41.  
  42.       o  Amiga OS 2.04 or higher is absolutely required!  Do not
  43.          send e-mail asking about 1.3 and below support.  Any such
  44.          requests will be silently ignored.
  45.  
  46.       o  An absolute minimum of 1Mb of memory is required to use
  47.          perl.  At least 3Mb is recommended for executing non-trivial
  48.          scripts along with background processes and spawned processes.
  49.      In general, the more RAM you have, the better.
  50.  
  51.       o  A hard disk is strongly recommended.  Perl will probably
  52.          be pretty worthless without one.
  53.  
  54.       o  A complete GCC 2.2.2 installation is recommended.  It comes
  55.          with a lot of the support stuff needed by perl (making
  56.          perl easier to install) (ixpipe, ixemul, etc) and you can
  57.          use it to hack the source (see 'Hacking' section below)!
  58.  
  59.       o  I'm completely clueless as to how much stack perl requires
  60.          but I'll bet it's a lot :^). I use between 45000 and 250000
  61.          for all of my shells so I suggest something within that range. 
  62.  
  63. 2.    Installation
  64.  
  65.      1.  Install libs/ixemul.library in LIBS:
  66.  
  67.      2.  Install ixpipe handler, the ixemul Unix-like pipe
  68.          handler.  (See the documentation in the ixpipe directory
  69.          for more information)
  70.  
  71.      3.  Make the following assigns if they do not already exist:
  72.  
  73.             1.   USR: - similar to UNIX /usr directory.
  74.             2.   BIN: - similar to UNIX /bin directory.
  75.             3.   DEV: - similar to UNIX /dev directory.
  76.             4.   TMP: - similar to UNIX /tmp directory.
  77.  
  78.      4.  Copy or link the perl binary to a directory somewhere in
  79.          your path.
  80.  
  81.      5.  Make a directory under usr:, usr:lib/perl
  82.  
  83.      6.  Copy the perl lib/ files to usr:lib/perl/.  Perl will be
  84.          able to automatically locate them there.  Otherwise
  85.          you'll have to set your environment variables up to find
  86.          the lib files (see man page).
  87.  
  88.  
  89. 2.1.    Caveats  and  Suggestions
  90.  
  91. 2.1.1.     Caveats
  92.  
  93. The version of ixemul.library that comes with perl expects real
  94. Unix-style path-names.  Devices are denoted by a leading '/',
  95. previous directories are denoted by '..'.  For example:
  96.  
  97. "/c/delete" in perl is the same as "C:delete" in AmigaDOS.
  98. "../../doc" in perl is the same as "//doc" in AmigaDOS.
  99.  
  100.  
  101. If you really hate this behavior (IMHO, it's a feature), you can
  102. reconfigure ixemul.library with the ixconfig stuff from the GCC
  103. distribution.
  104.  
  105. Another caveat is that many Unix perl scripts will expect certain
  106. standard Unix tools to exist.  I suggest hunting down any Unix
  107. work-alike tools you can find and putting them in BIN:.  If anyone
  108. comes up with a good set of freely distributable ones, let me know
  109. and maybe we can include them in future binary distributions.
  110.  
  111. 2.1.2.     Suggestions
  112.  
  113. I suggest adding the BIN: assign to your search path (preferably
  114. in your "user-startup" file).  I also suggest making the BIN: to be
  115. a directory called "bin" in the USR: assign.  This way,
  116. ixemul.library will translate references to both: "/usr/bin" and
  117. "/bin" to the BIN: assign.  
  118.  
  119.  
  120. 3.  Limitations
  121.  
  122. Most of the limitations of this release are due to the fact that
  123. AmigaDOS is not Unix, which means that a number of the perl
  124. features do not make sense on a single-user, non-Unix, OS.
  125.  
  126.       o  The fork function is not supported.
  127.       o  The functions related to passwords, user, and group
  128.          id's are not supported.
  129.       o  The chroot function is not supported.
  130.       o  The dbm stuff is not supported.
  131.  
  132.       o   Some scripts which expect "/dev/null" to exist will have
  133.           to be modified since it does not exist on the amiga.
  134.  
  135.  
  136. 4.  Known Bugs
  137.  
  138. 4.1.  Bugs Not Expected To Be Fixable
  139.  
  140.       o  The "-e" option typically does not work as expected due to
  141.          the way most Amiga shells handle quoting.  I know csh
  142.          5.19, for one, fails very badly at this.  This bug is
  143.          basically beyond my control.
  144.  
  145.       o  Scripts which expect the "#!"  shell execution mechanism
  146.          to work will fail. I've included a program called
  147.          "cscript" to help alleviate this problem (more info in
  148.          the cscript directory of this distribution.)
  149.  
  150. 4.2.  Bugs Expected To Be Fixed in Future Releases
  151.  
  152.       o  Fails a number of tests (majority located in "op/*.t") due
  153.          to missing Unix commands (cat, tr, etc).
  154.  
  155.       o  Fails a few of the tests outright.
  156.  
  157.  
  158. 5.  Reporting (and Fixing) Bugs
  159.  
  160. Bugs that are general perl bugs go to Larry Wall
  161. (lwall@netlabs.com).  Bugs specific to the Amiga should be
  162. reported directly to me (Kent.Dalton@FtCollinsCO.NCR.com).  Don't
  163. expect an incredibly rapid response unless your problem is
  164. extremely serious...  (You do have the source after all!)
  165.  
  166. Speaking of the source, I fully welcome others to fix bugs or just
  167. plain hack the code and encourage those who do to send me fixes
  168. and patches via e-mail so I can include them in the main release.
  169. Please send patches as context diffs (if you don't have a program
  170. that can generate context diffs or don't know what context diffs
  171. are, let me know via e-mail).  I will try to include a complete
  172. contributors list in future versions to give credit where it is due.
  173.  
  174.  
  175. 6.  Hacking Perl
  176.  
  177. Rebuilding this perl port requires GCC 2.2.2 with ixemul.library
  178. (Removing the dependence on GCC/ixemul would be pretty
  179. non-trivial.), God only knows how much RAM (probably a bare
  180. minimum of 4Mb without loading WB), a Hard Disk, and an
  181. accelerated CPU. Well, actually the accelerater is IMHO, but if
  182. you actually do try to rebuild perl on a 7MHz 68000 using GCC, I
  183. bet you'll end up agreeing with me!  The Makefile was created for
  184. use with Ben Eng's BMake, any other reasonably full-featured make
  185. should be able to digest it, though.
  186.  
  187. As configured with the Makefile, you should be able to build perl
  188. using gcc with no compilation errors (or even warnings).  I've
  189. tried to preface most of the amiga-specific changes with #define
  190. AMIGA's.  There really aren't tons of code changes.  (The really
  191. hard part was getting it configured, etc and then isolating
  192. the little changes that were necessary (in such a big program)).
  193.  
  194.  
  195. 7.    References
  196.  
  197. There are basically two primary perl references for those of you
  198. who wish to learn perl.  First, is the mega-man page that is
  199. included with this distribution.  And second, is the book
  200. "Programming Perl" published by O'Reilly and Associates, ISBN:
  201. 0-937175-64-1.  Both are highly recommended reading.  The
  202. Reference Card that comes with the Perl book is also available in
  203. postscript and LaTeX formats via anonymous FTP from any site that
  204. archives the newsgroup comp.sources.misc
  205.                                                              5
  206.